﻿// DNA Laboratory POJ - 1795.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <cstring>
#include <string>



using namespace std;

//https://vjudge.csgrandeur.cn/problem/POJ-1795

/*
描述：
背景：
邪恶的弗兰肯斯坦博士最近刚开始建立自己的DNA实验室，但他对此还不够了解。他想提取自己的DNA，进行一些改进，并克隆自己。
他已经找到了从自己的血细胞中提取DNA的方法，但不幸的是，读取DNA序列意味着将DNA分成多个短片段，并首先分析这些片段。
弗兰肯斯坦还没有完全理解如何将这些片段组合起来以恢复原始序列。
他解决这个问题的务实方法是潜入大学，并绑架一些聪明的学生。毫不奇怪，你就是其中之一，所以你最好快点想出解决方案。

问题：
给定一个由字母A（腺嘌呤）、C（胞嘧啶）、G（鸟嘌呤）和T（胸腺嘧啶）组成的字符串列表，
你的任务是找到包含所有给定字符串作为子串的最短字符串（通常不在列表中）。
如果有多个具有最短长度的这样的字符串，请按字母顺序找到最小的那个。
3
输入：
第一行包含场景数量。
对于每个场景，第一行包含字符串的数量n，其中1 <= n <= 15。接下来的n行每行包含一个字符串，
长度范围为1 <= length <= 100，并且仅包含字母"A"、"C"、"G"和"T"。

输出：
每个场景的输出以包含“Scenario #i:”的一行开头，其中i是从1开始的场景编号。
然后打印一行包含上述描述的最短（且最小）字符串。用一个空行终止场景的输出。

示例输入：
1
2
TGCACA
CAT

示例输出：
Scenario #1:
TGCACAT
*/

const int N = 20;
int dp[N][N];
string A, B;


int main()
{
	

	return 0;
}
 